class Solution {
    public int numSubarrayProductLessThanK(int[] nums, int k) {
        if(k == 0) {
            return 0;
        }
        int left = 0;
        int count = 0;
        int total = 1;
        for (int right = 0; right < nums.length; right++) {
            /*
            [10,5,2,6]  k = 101
            10*5*2=100<101  right一直++，但是每次count+=right-left+1
            直到不满足条件，left++    
            */ 
            total *= nums[right];
            while (left <= right && total >= k) {
                //当一旦不满足条件时，因为要连续，去掉一个left，并且使left++
                total /= nums[left++];
            }
            if (left <= right) {
                //如果不满足上述while条件total<k满足条件，使计数增加
                count += right - left + 1;
            }
        }
        return count;
    }
}